今天是那種「一邊部署一邊祈禱」的日子。
專案正式進入 生產前最終準備階段,
重點是三件事:穩定性驗證、壓力測試、部署自動化。
部署到 production 前,最怕「看起來都好好的,結果一上線全爆」。
於是我花了一早上做了三件保命事:
檢查 Docker 配置
調整 Dockerfile 的 multi-stage build 與 cache 機制,
加快 build 速度 20%,映像大小也少了 300 MB。
環境變數清查
把 dev、uat、prod 分別設成獨立 .env 檔,
並新增驗證腳本 verify-env.sh
,自動檢查是否缺 key。
部署流程總成
整合 Makefile 與 scripts/deploy/ ,
一行指令可完成整個 build → test → push → deploy。
這波調整讓 CI/CD 更乾淨,也更不容易「炸 pipeline」。
重頭戲來了。
我執行長時間壓測與 actor pool 穩定性測試。
結果顯示:
測試項目 | 結果 | 備註 |
---|---|---|
Actor Pool 運行時間 | ✅ 連續 2 hr 穩定 | 無記憶體 leak 警示 |
吞吐量 | ✅ 提升 約 12.5 倍 | 達 每秒 > 1500 req |
CPU 使用率 | ✅ 穩定 在 65–70% | 可再壓縮 |
記憶體占用 | ✅ 線性穩定 | 未出現 heap 抖動 |
看到這張表,我終於敢對系統說:「你畢業了。」🎓
為了確保所有測試資料都是「活的」,
我重寫了 E2E 腳本 scripts/test/e2e/e2e_test.sh
與 setup_test_env.sh
:
active conversation_id
notify_key
test_results/e2e/e2e_report_20251013_*.json
執行結果:
E2E 測試 15/15 通過 ✅
成功率 100%
耗時 約 6 秒
這是我第一次看到 E2E 全綠而沒想再重跑。
感覺就像看到 CI 面板全亮 綠燈,心情瞬間升級為 SSR 等級。
我把監控從「報錯」升級為「報狀態」。
系統現在能:
再加上 Grafana 儀表板視覺化,
現在整個系統就像戴上智慧手錶,能自我檢查生命跡象。
今天的文檔更新聚焦在實戰細節:
文件 | 狀態 | 備註 |
---|---|---|
DeploymentGuide.md | ✅ 更新完畢 | 新增 UAT/Prod 分流部署章節 |
MonitoringGuide.md | ✅ 補完 | 新增 Alert Rule 與 指標說明 |
Troubleshooting.md | ✅ 新增 | 列出 Top 5 常見 CI/CD 錯誤 |
API Doc | ⚙️ 持續整理中 | 將由 Swagger 自動生成 |
文檔完整度已達 98%,
我開始覺得自己寫的不只是系統,而是一個「會自己解釋的作品」。
類別 | 成果 |
---|---|
🐳 部署 | Prod 配置與 Docker 優化完成 |
💪 穩定性 | 壓測 + Actor Pool 全數通過 |
🧪 測試 | E2E 15/15 全綠 ✅ |
📊 監控 | 告警與儀表板 全面運作 |
📘 文檔 | 更新與 Troubleshooting 新增 |
今天是「穩定」的一天,卻一點也不無聊。
從 E2E 到 Prod,所有細節都像螺絲被擰緊。
「穩定不是偶然,而是無數細節的正確堆疊。」
明天開始,就要正式迎接 UAT 與 生產部署。
我已經準備好,讓整個 Teams Notification 系統在真實世界裡閃耀。🌟